package com.amsp.oa.oademo.service;

import com.amsp.oa.oademo.entity.ExternalContactLetter;
import com.amsp.oa.oademo.vo.ExternalContactLetterVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 外部联络函Service接口
 */
public interface ExternalContactLetterService extends IService<ExternalContactLetter> {

    /**
     * 保存或更新外部联络函
     *
     * @param vo 外部联络函VO
     * @return 是否成功
     */
    boolean saveOrUpdateExternalContactLetter(ExternalContactLetterVO vo);

    /**
     * 批量保存或更新外部联络函
     *
     * @param voList 外部联络函VO列表
     * @return 是否成功
     */
    boolean batchSaveOrUpdateExternalContactLetter(List<ExternalContactLetterVO> voList);

    /**
     * 获取外部联络函详情
     *
     * @param id ID
     * @return 外部联络函VO
     */
    ExternalContactLetterVO getExternalContactLetterDetail(Long id);

    /**
     * 分页查询外部联络函
     *
     * @param page 分页参数
     * @param vo   查询条件
     * @return 分页结果
     */
    Page<ExternalContactLetterVO> getExternalContactLetterPage(Page<ExternalContactLetter> page,
            ExternalContactLetterVO vo);

    /**
     * 删除外部联络函
     *
     * @param id ID
     * @return 是否成功
     */
    boolean deleteExternalContactLetter(Long id);

    /**
     * 批量删除外部联络函
     *
     * @param ids ID列表
     * @return 是否成功
     */
    boolean batchDeleteExternalContactLetter(List<Long> ids);
}